/**
 * @author Silas Fontain, Søren Lorentzen, Daniel Nissen
 */

package ordination;

import java.util.GregorianCalendar;

public class DagligFast extends Ordination {
	
	private Dosis[] doser;
	
	public DagligFast(GregorianCalendar startDen, GregorianCalendar slutDen, Laegemiddel laegemiddel) {
		super(startDen, slutDen, laegemiddel);
		doser = new Dosis[4];
	}

	/**
	 * Returnerer samlet antal dosis fra Startdato til Slutdato
	 */
	@Override
	public double samletDosis() {
		return super.antalDage() * doegnDosis();
	}

	/**
	 * Returnerer antal dosis der gives på et doegn.
	 */
	@Override
	public double doegnDosis() {
		double doegnDosis = 0;
		for(int i = 0;i < doser.length; i++) {
			if(doser[i] != null) {
				doegnDosis += doser[i].getAntal();
			}
		}
		return doegnDosis;
	}
	
	/**
	 * Returnerer et array indeholdende ordinationens doser.
	 */
	public Dosis[] getDoser() {
		return doser;
	}
	
	void addDosis(Dosis dosis) {
		if(dosis.getTid().equals("Morgen"))
			doser[0] = dosis;
		else if(dosis.getTid().equals("Middag"))
			doser[1] = dosis;
		else if(dosis.getTid().equals("Aften"))
			doser[2] = dosis;
		else if(dosis.getTid().equals("Nat"))
			doser[3] = dosis;
	}
	
	/**
	 * Opretter og indsætter dosis på en plads i et array svarende til
	 * @param antal
	 * @param tid	[0]="Morgen", [1]="Middag", [2]="Aften", [3]="Nat".
	 */
	public Dosis createDosis(double antal, String tid) {
		Dosis dosis = new Dosis(tid, antal);
		addDosis(dosis);
		return dosis;
	}
	
	/**
	 * Fjerner en dosis ud fra compareTo
	 * @param dosis
	 */
	public void removeDosis(Dosis dosis) {
		for(int i = 0; i < doser.length; i++) {
			if(doser[i] != null) {
				if(dosis.equals(doser[i])) {
					doser[i] = null;
				} else {}
			} else {}
		}
	}
}
